<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
.postcontent {
    word-wrap: break-word;
}
.restore, li.restore, ol li.restore {
    font-size: 10pt;
}
</style>
<title>Insert title here</title>
</head>
<body>
	<blockquote class="postcontent restore ">
		Cái này mình cũng hơi khó diễn đạt ra cho bạn vì mình cũng tự mò ra
		thôi. Nó cũng gần giống interface trong java ấy.<br> <br>
		Mình cho bạn 1 ví dụ này:<br> // file A.h<br> @protocol
		AProtocol<br> -(void)callThisMethod;<br> @end<br> <br>
		@interface A<br> @property (retain, nonatomic)
		id&lt;AProtocol&gt; delegate;<br> <br> -(void)AMethod;<br>
		@end<br> <br> // file A.m<br> @implement A<br>
		@synthesize delegate = _delegate;<br> -(void)AMethod{<br>
		[_delegate callThisMethod];<br> }<br> @end<br> <br>
		// file B.h<br> #import "A.h"<br> @interface B
		&lt;AProtocol&gt;<br> -(void) init;<br> @end<br> <br>
		// file B.m<br> @implement B<br> -(void) init{<br> A* a
		= [[A alloc] init];<br> [a setDelegate: self];<br> }<br>
		-(void)callThisMethod{<br> // do something<br> }<br>
		@end<br> <br> Mục đích ở đây là khi class A gọi AMethod nó
		sẽ hàm callThisMethod được khai báo trong class B. Bạn có thể dùng cái
		này để trao đổi dữ liệu, truyền thông điệp giữa 2 class
	</blockquote>
</body>
</html>